Modern computer software developers are continually improving and updating software, even after the software is released to users. Existing network infrastructure, such as the Internet, allows the software developers to send software updates to the users quickly and frequently, if need be. The Internet also allows the users to provide feedback to the software developer regarding problems that may arise while executing the software. This feedback may be manual feedback sent by express action of the user. Though, some operating systems include an agent of an error reporting system, which may provide automated feedback if the user gives consent for the user's operating system to send such information. This feedback may include useful information about the operating environment at the time a software program crashes or hangs and allows the software developer to investigate and fix any bugs in the software.
When feedback is sent automatically by the operating system, the information sent may be a “dump” of information collected from the computer to define the operating state at the computer at the time of a crash or other performance problem. It is useful to include at least a portion of the contents of memory in the dump. This information, sometimes, called a memory dump, reveals the state of the working memory at a particular time.
The memory dump allows the software developers to perform investigation into the cause of a crash or a hang. However, a full memory dump in modern computer systems is excessively large and not all of the information contained therein is particularly useful to software developers. Thus, only a portion of the memory dump may be sent.
Content from different amounts of memory may be sent in different scenarios. In some scenarios, a report of an error may include enough of the contents of memory to aid in identifying that a particular software application has a problem. The software may have any of a number of problems. For example, there could exist problems with performance, reliability, stability, security or compatibility. Such a dump is sometimes called a “triage dump.” Based on analysis of the triage dump, a software developer may configure the error reporting system to collect more detailed information for inclusion in error reports.